/**
 * @description 路由拦截状态管理，目前两种模式：all模式与intelligence模式，其中partialRoutes是菜单暂未使用
 */
import { defineStore } from 'pinia'
import type { netConfigState, testHeaderState } from '@/types/app'

export const netConfigUse = defineStore('net', {
  state: (): netConfigState => ({
    config: {
      testHeader: [
        {
          key: 'Authorization',
          val: 'xxx'
        }
      ],
      baseUrl: 'http://192.168.50.66:8036',
      tokenName: 'x-client-voucher',
      headers: {
        'x-client-type': 'MANAGER'
      },
      list: 'records',
      total: 'total',
      pageSize: 'pageSize',
      pageNo: 'pageNo',
      apis: {
        //  登录
        login: {
          api: '/member/login',
          method: 'post'
        },
        //  用户信息
        userInfo: {
          api: '/member/info',
          method: 'post'
        },
        //  修改用户信息
        updInfo: {
          api: '/member/updateInfo',
          method: 'post'
        },
        //  修改密码
        updPass: {
          api: '/member/updatePass',
          method: 'post'
        },
        //  所有路由
        routerAll: {
          api: '/menu/loginNavigate',
          method: 'post'
        },
        //  登录用户路由
        roleAll: {
          api: '/member/role/findList',
          method: 'get'
        },
        //  获取布局
        getLayout: {
          api: '/menu/findByNameList',
          method: 'get'
        },
        //  修改布局
        setLayout: {
          api: '/menu/updateMenu',
          method: 'post'
        },
        //  获取事件表单布局
        getLayoutEvent: {
          api: '/event/findById',
          method: 'get'
        },
        //  获取事件
        eventGetList: {
          api: `/event/findList`,
          method: 'get'
        },
        //  删除事件
        eventDel: {
          api: '/event/del',
          method: 'post'
        },
        //  添加事件
        eventAdd: {
          api: '/event/saveOrUpdate',
          method: 'post'
        },
        //  编辑事件
        eventEdit: {
          api: '/event/saveOrUpdate',
          method: 'post'
        },
        //  获取按钮
        eventBtnGetList: {
          api: `/eventBtn/findList`,
          method: 'get'
        },
        //  删除按钮
        evenBtntDel: {
          api: '/eventBtn/del',
          method: 'post'
        },
        //  添加按钮
        eventBtnAdd: {
          api: '/eventBtn/saveOrUpdate',
          method: 'post'
        },
        //  编辑按钮
        eventBtnEdit: {
          api: '/eventBtn/saveOrUpdate',
          method: 'post'
        }
      }
    }
  }),
  getters: {
    getNetConfig: state => state.config
  },
  actions: {
    setHeader(header: testHeaderState[]) {
      this.config.testHeader = header
    }
  }
})
